<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <slot name="row" :user="user">
      {{ user.a }}
    </slot>
    <slot name="header" :user="user">
      {{ user.a }}
    </slot>
  </div>
</template>

<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator"

@Component
export default class HelloWorld extends Vue {
  @Prop() private msg!: string

  user = {
    a: 10,
    b: 20
  }

  mounted() {
    console.log("mount")
    window.addEventListener("resize", this.resizeHandler)
    // 使用 hook 新语法
    this.$on("hook:beforeDestroy", () => {
      window.removeEventListener("resize", this.resizeHandler)
    })
  }

  private resizeHandler() {
    console.log(21)
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
